# @Time : 2024/10/27 22:14
# @Author : Fioman 
# @Phone : 13149920693
"""
lambda函数: 匿名函数,没有函数名,通过lambda表达式,只有参数和返回值的函数. lambda的方法体只能是
一条语句,并且这条语句的结果就是这个函数的返回值
lambda args:expression  args可省略
"""
# region 1. 与内置的高阶函数map一起使用
res = map(lambda x: x ** 2 + 1, range(1, 10))  # 一个参数的map函数
print(list(res))
# 两个参数的map函数
res2 = map(lambda x, y: x ** 2 + y ** 2, range(1, 10), range(1, 10))
print(list(res2))
# endregion

# region 2. 与内置高阶函数sorted一起使用
lst = [1, 2, 3, 4, 6, 7, -4, -5, -2, -1]
lstSorted = sorted(lst, key=lambda x: abs(x))  # 按绝对值大小正序排列
print(lstSorted)
stuInfo = [("Fioman", 100), ("Hammer", 90), ("YueYue", 80)]
stuInfoSorted = sorted(stuInfo, key=lambda x: x[1], reverse=True)  # 按照学生成绩从大到小
# endregion

# region 3. filter高阶函数中使用lambda
res = filter(lambda x: x % 2 == 0, range(20))
print(list(res))
# endregion
